package com.dd.cloud.user.service.resource;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dd.cloud.user.entity.resource.SpreadInfo;
import com.dd.cloud.user.req.resource.SpreadInfoSystemCreateReq;
import com.dd.cloud.user.req.resource.SpreadInfoSystemPageReq;
import com.dd.cloud.user.req.resource.SpreadInfoSystemUpdateReq;
import com.dd.cloud.user.req.resource.SpreadInfoSystemUpdateStatusReq;
import com.dd.cloud.user.res.resource.SpreadInfoSystemDetailRes;
import com.dd.cloud.user.res.resource.SpreadInfoSystemPageRes;

/**
 * @author Lx
 * @version 1.0
 * @date 2024/1/29
 */
public interface ISpreadInfoService extends IService<SpreadInfo> {
    /**
     * 查询开屏信息列表
     *
     * @param req
     * @return
     */
    IPage<SpreadInfoSystemPageRes> querySpreadInfoSystemPage(SpreadInfoSystemPageReq req);

    /**
     * 创建开屏信息
     *
     * @param req
     */
    void createSpreadInfoSystem(SpreadInfoSystemCreateReq req);

    /**
     * 修改开屏信息
     *
     * @param req
     */
    void updateSpreadInfoSystem(SpreadInfoSystemUpdateReq req);

    /**
     * 验证是否有开屏页面为显示状态
     *
     * @param id 排除id
     * @return true有开屏页面为显示状态 false没有开屏页面为显示状态
     */
    Boolean verifySpreadInfoIsShow(Integer id);

    /**
     * 修改开屏信息状态
     *
     * @param req
     */
    void updateSpreadInfoSystemUpdateStatus(SpreadInfoSystemUpdateStatusReq req);

    /**
     * 查询开屏信息详情
     *
     * @param id
     * @return
     */
    SpreadInfoSystemDetailRes querySpreadInfoSystemDetail(Integer id);

    /**
     * 获取开屏信息
     *
     * @return
     */
    SpreadInfo querySpreadInfo();

    /**
     * 定时任务修改开屏页面状态
     */
    void taskUpdateStatus();

    /**
     * 广告记录
     * @param id
     */
    void advertRecord(Integer id);

    /**
     * 查询是否使用
     * @return
     */
    Integer queryIsUser(Integer id);
}
